package cn.tedu.practice2303.TZ.day0410.homework;

import homework.User;

import java.io.*;

/**
 * 将当前目录下的所有obj文件获取到，并进行
 * 反序列化后输出每个用户的信息(直接输出反序
 * 列化后的User对象即可)
 * @author Xiloer
 *
 */
public class Test01 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        File dir = new File(".");
        File[] subs = dir.listFiles((f)->f.getName().endsWith(".obj"));
        for(int i=0;i<subs.length;i++){
            File sub = subs[i];

            FileInputStream fis=new FileInputStream(sub);
            ObjectInputStream ois=new ObjectInputStream(fis);
            Object obj=ois.readObject();

            if(obj instanceof User){
                User user=(User)obj;
                System.out.println(user);

            }

        }



    }

}

/*
    提示代码:
	需要用到的语句，尝试按照正确顺序将下列代码并放在main方法中完成需求，
	并在注释中标注每句话的作用，
	//【在这里标注该句代码意义】
    File dir = new File(".");//是指在当前的目录下

    //【在这里标注该句代码意义】遍历选出的数组
    for(int i=0;i<subs.length;i++){

    }

    //【在这里标注该句代码意义】通过过滤器选出文件后缀为.obj的文件
    File[] subs = dir.listFiles((f)->f.getName().endsWith(".obj"));

    //【在这里标注该句代码意义】//读取sub文件
    FileInputStream fis = new FileInputStream(sub);

    //【在这里标注该句代码意义】//从数组中获取每一个obj文件
    File sub = subs[i];

    //【在这里标注该句代码意义】//输出反序列后的user
    System.out.println(user);

    //【在这里标注该句代码意义】//反序列化
    ObjectInputStream ois = new ObjectInputStream(fis);

    //【在这里标注该句代码意义】转为user
    User user = (User)obj;

    //【在这里标注该句代码意义】反序列化后的对象
    Object obj = ois.readObject();

    //【在这里标注该句代码意义】判断能否强转
    if(obj instanceof User){

    }

 */